<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Kleene's algorithm</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Kleene's_algorithm"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Kleene_s_algorithm rootpage-Kleene_s_algorithm skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Kleene's algorithm</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><p>In <a href="Theoretical_computer_science" title="Theoretical computer science">theoretical computer science</a>, in particular in <a href="Formal_language_theory" class="mw-redirect" title="Formal language theory">formal language theory</a>, <b>Kleene's algorithm</b> transforms a given <a href="Nondeterministic_finite_automaton" title="Nondeterministic finite automaton">nondeterministic finite automaton</a> (NFA) into a <a href="Regular_expression" title="Regular expression">regular expression</a>.
Together with other conversion algorithms, it establishes the equivalence of several description formats for <a href="Regular_language" title="Regular language">regular languages</a>. Alternative presentations of the same method include the "elimination method" attributed to <a href="Janusz_Brzozowski_(computer_scientist)" title="Janusz Brzozowski (computer scientist)">Brzozowski</a> and <a href="Edward_J._McCluskey" title="Edward J. McCluskey">McCluskey</a>, the algorithm of <a href="Robert_McNaughton" title="Robert McNaughton">McNaughton</a> and <a href="Hisao_Yamada" title="Hisao Yamada">Yamada</a>,<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> and the use of <a href="Arden's_lemma" class="mw-redirect" title="Arden's lemma">Arden's lemma</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Algorithm_description">Algorithm description</h2></div>
<p>According to Gross and Yellen (2004),<sup id="cite_ref-gross2004handbook_2-0" class="reference"><a href="#cite_note-gross2004handbook-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> the algorithm can be traced back to <a href="Kleene" class="mw-redirect" title="Kleene">Kleene</a> (1956).<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> A presentation of the algorithm in the case of <a href="Deterministic_finite_automata" class="mw-redirect" title="Deterministic finite automata">deterministic finite automata</a> (DFAs) is given in Hopcroft and Ullman (1979).<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> The presentation of the algorithm for NFAs below follows Gross and Yellen (2004).<sup id="cite_ref-gross2004handbook_2-1" class="reference"><a href="#cite_note-gross2004handbook-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>Given a <a href="Nondeterministic_finite_automaton#Formal_definition" title="Nondeterministic finite automaton">nondeterministic finite automaton</a> <i>M</i> = (<i>Q</i>, Σ, δ, <i>q</i><sub>0</sub>, <i>F</i>), with <i>Q</i> = { <i>q</i><sub>0</sub>,...,<i>q</i><sub><i>n</i></sub> } its set of <a href="Nondeterministic_finite_automaton#Formal_definition" title="Nondeterministic finite automaton">states</a>, the algorithm computes
</p>
<dl><dd>the sets <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>k</i></sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>ij</i></sub></span></span> of all strings that take <i>M</i> from state <i>q</i><sub><i>i</i></sub> to <i>q</i><sub><i>j</i></sub> without going through any state numbered higher than <i>k</i>.</dd></dl>
<p>Here, "going through a state" means entering <i>and</i> leaving it, so both <i>i</i> and <i>j</i> may be higher than <i>k</i>, but no intermediate state may.
Each set <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>k</i></sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>ij</i></sub></span></span> is represented by a regular expression; the algorithm computes them step by step for <i>k</i> = -1, 0, ..., <i>n</i>. Since there is no state numbered higher than <i>n</i>, the regular expression <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>n</i></sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>0j</i></sub></span></span> represents the set of all strings that take <i>M</i> from its <a href="Nondeterministic_finite_automaton#Formal_definition" title="Nondeterministic finite automaton">start state</a> <i>q</i><sub>0</sub> to <i>q</i><sub><i>j</i></sub>. If <i>F</i> = { <i>q</i><sub>1</sub>,...,<i>q</i><sub><i>f</i></sub> } is the set of <a href="Nondeterministic_finite_automaton#Formal_definition" title="Nondeterministic finite automaton">accept states</a>, the <a href="Regular_expression#Formal_definition" title="Regular expression">regular expression</a> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>n</i></sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>01</i></sub></span></span> | ... | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>n</i></sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>0f</i></sub></span></span> represents the language <a href="Nondeterministic_finite_automaton#Formal_definition" title="Nondeterministic finite automaton">accepted</a> by <i>M</i>.
</p><p>The initial regular expressions, for <i>k</i> = -1, are computed as follows for <i>i</i>≠<i>j</i>:
</p>
<dl><dd><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>ij</i></sub></span></span> = <i>a</i><sub>1</sub> | ... | <i>a</i><sub><i>m</i></sub> where <i>q</i><sub><i>j</i></sub> ∈ δ(<i>q</i><sub><i>i</i></sub>,<i>a</i><sub>1</sub>), ..., <i>q</i><sub><i>j</i></sub> ∈ δ(<i>q</i><sub><i>i</i></sub>,<i>a</i><sub><i>m</i></sub>)</dd></dl>
<p>and as follows for <i>i</i>=<i>j</i>:
</p>
<dl><dd><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>ii</i></sub></span></span> = <i>a</i><sub>1</sub> | ... | <i>a</i><sub><i>m</i></sub> | ε where <i>q</i><sub><i>i</i></sub> ∈ δ(<i>q</i><sub><i>i</i></sub>,<i>a</i><sub>1</sub>), ..., <i>q</i><sub><i>i</i></sub> ∈ δ(<i>q</i><sub><i>i</i></sub>,<i>a</i><sub><i>m</i></sub>)</dd></dl>
<p>In other words, <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>ij</i></sub></span></span> mentions all letters that label a transition from <i>i</i> to <i>j</i>, and we also include ε in the case where <i>i</i>=<i>j</i>.
</p><p>After that, in each step the expressions <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>k</i></sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>ij</i></sub></span></span> are computed from the previous ones by
</p>
<dl><dd><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>k</i></sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>ij</i></sub></span></span> = <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>k</i>-1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>ik</i></sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>k</i>-1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>kk</i></sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>k</i>-1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>kj</i></sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>k</i>-1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>ij</i></sub></span></span></dd></dl>
<p>Another way to understand the operation of the algorithm is as an "elimination method", where the states from 0 to <i>n</i> are successively removed: when state <i>k</i> is removed, the regular expression <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>k</i>-1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>ij</i></sub></span></span>, which describes the words that label a path from state <i>i</i>><i>k</i> to state <i>j</i>><i>k</i>, is rewritten into <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>k</i></sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>ij</i></sub></span></span> so as to take into account the possibility of going via the "eliminated" state <i>k</i>.
</p><p>By induction on <i>k</i>, it can be shown that the length<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> of each expression <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>k</i></sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>ij</i></sub></span></span> is at most <style data-mw-deduplicate="TemplateStyles:r1214402035">
/* start https://en.wikipedia.org/ */
.mw-parser-output .sfrac{white-space:nowrap}.mw-parser-output .sfrac.tion,.mw-parser-output .sfrac .tion{display:inline-block;vertical-align:-0.5em;font-size:85%;text-align:center}.mw-parser-output .sfrac .num{display:block;line-height:1em;margin:0.0em 0.1em;border-bottom:1px solid}.mw-parser-output .sfrac .den{display:block;line-height:1em;margin:0.1em 0.1em}.mw-parser-output .sr-only{border:0;clip:rect(0,0,0,0);clip-path:polygon(0px 0px,0px 0px,0px 0px);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}
/* end https://en.wikipedia.org/ */
</style><span class="sfrac"><span class="tion"><span class="num">1</span><span class="sr-only">/</span><span class="den">3</span></span></span>(4<sup><i>k</i>+1</sup>(6<i>s</i>+7) - 4) symbols, where <i>s</i> denotes the number of characters in Σ.
Therefore, the length of the regular expression representing the language accepted by <i>M</i> is at most <span class="sfrac"><span class="tion"><span class="num">1</span><span class="sr-only">/</span><span class="den">3</span></span></span>(4<sup><i>n</i>+1</sup>(6<i>s</i>+7)<i>f</i> - <i>f</i> - 3) symbols, where <i>f</i> denotes the number of final states.
This exponential blowup is inevitable, because there exist families of DFAs for which any equivalent regular expression must be of exponential size.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>In practice, the size of the regular expression obtained by running the algorithm can be very different depending on the order in which the states are considered by the procedure, i.e., the order in which they are numbered from 0 to <i>n</i>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Example">Example</h2></div>
<p>The automaton shown in the picture can be described as <i>M</i> = (<i>Q</i>, Σ, δ, <i>q</i><sub>0</sub>, <i>F</i>) with
</p>
<ul><li>the set of states <i>Q</i> = { <i>q</i><sub>0</sub>, <i>q</i><sub>1</sub>, <i>q</i><sub>2</sub> },</li>
<li>the input alphabet Σ = { <i>a</i>, <i>b</i> },</li>
<li>the transition function δ with δ(<i>q</i><sub>0</sub>,<i>a</i>)=<i>q</i><sub>0</sub>, δ(<i>q</i><sub>0</sub>,<i>b</i>)=<i>q</i><sub>1</sub>, δ(<i>q</i><sub>1</sub>,<i>a</i>)=<i>q</i><sub>2</sub>, δ(<i>q</i><sub>1</sub>,<i>b</i>)=<i>q</i><sub>1</sub>, δ(<i>q</i><sub>2</sub>,<i>a</i>)=<i>q</i><sub>1</sub>, and δ(<i>q</i><sub>2</sub>,<i>b</i>)=<i>q</i><sub>1</sub>,</li>
<li>the start state <i>q</i><sub>0</sub>, and</li>
<li>set of accept states <i>F</i> = { <i>q</i><sub>1</sub> }.</li></ul>
<p>Kleene's algorithm computes the initial regular expressions as
</p>
<dl><dd><table>
<tbody><tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>
</td>
<td>= <i>a</i> | ε
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">01</sub></span></span>
</td>
<td>= <i>b</i>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">02</sub></span></span>
</td>
<td>= ∅
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">10</sub></span></span>
</td>
<td>= ∅
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>
</td>
<td>= <i>b</i> | ε
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">12</sub></span></span>
</td>
<td>= <i>a</i>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">20</sub></span></span>
</td>
<td>= ∅
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">21</sub></span></span>
</td>
<td>= <i>a</i> | <i>b</i>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>
</td>
<td>= ε
</td></tr></tbody></table></dd></dl>
<p>After that, the <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>k</i></sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>ij</i></sub></span></span> are computed from the <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>k</i>-1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline"><i>ij</i></sub></span></span> step by step for <i>k</i> = 0, 1, 2.
<a href="Kleene_algebra" title="Kleene algebra">Kleene algebra</a> equalities are used to simplify the regular expressions as much as possible.
</p>
<dl><dt>Step 0</dt></dl>
<dl><dd><table>
<tbody><tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>
</td>
<td>= (<i>a</i> | ε)
</td>
<td>(<i>a</i> | ε)<sup>*</sup>
</td>
<td>(<i>a</i> | ε)
</td>
<td>| <i>a</i> | ε
</td>
<td>= <i>a</i><sup>*</sup>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">01</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">01</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">01</sub></span></span>
</td>
<td>= (<i>a</i> | ε)
</td>
<td>(<i>a</i> | ε)<sup>*</sup>
</td>
<td><i>b</i>
</td>
<td>| <i>b</i>
</td>
<td>= <i>a</i><sup>*</sup> <i>b</i>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">02</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">02</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">02</sub></span></span>
</td>
<td>= (<i>a</i> | ε)
</td>
<td>(<i>a</i> | ε)<sup>*</sup>
</td>
<td>∅
</td>
<td>| ∅
</td>
<td>= ∅
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">10</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">10</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">10</sub></span></span>
</td>
<td>= ∅
</td>
<td>(<i>a</i> | ε)<sup>*</sup>
</td>
<td>(<i>a</i> | ε)
</td>
<td>| ∅
</td>
<td>= ∅
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">10</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">01</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>
</td>
<td>= ∅
</td>
<td>(<i>a</i> | ε)<sup>*</sup>
</td>
<td><i>b</i>
</td>
<td>| <i>b</i> | ε
</td>
<td>= <i>b</i> | ε
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">12</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">10</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">02</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">12</sub></span></span>
</td>
<td>= ∅
</td>
<td>(<i>a</i> | ε)<sup>*</sup>
</td>
<td>∅
</td>
<td>| <i>a</i>
</td>
<td>= <i>a</i>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">20</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">20</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">20</sub></span></span>
</td>
<td>= ∅
</td>
<td>(<i>a</i> | ε)<sup>*</sup>
</td>
<td>(<i>a</i> | ε)
</td>
<td>| ∅
</td>
<td>= ∅
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">21</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">20</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">01</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">21</sub></span></span>
</td>
<td>= ∅
</td>
<td>(<i>a</i> | ε)<sup>*</sup>
</td>
<td><i>b</i>
</td>
<td>| <i>a</i> | <i>b</i>
</td>
<td>= <i>a</i> | <i>b</i>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">20</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">02</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">−1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>
</td>
<td>= ∅
</td>
<td>(<i>a</i> | ε)<sup>*</sup>
</td>
<td>∅
</td>
<td>| ε
</td>
<td>= ε
</td></tr></tbody></table></dd></dl>
<dl><dt>Step 1</dt></dl>
<dl><dd><table>
<tbody><tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">01</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">10</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>
</td>
<td>= <i>a</i><sup>*</sup><i>b</i>
</td>
<td>(<i>b</i> | ε)<sup>*</sup>
</td>
<td>∅
</td>
<td>| <i>a</i><sup>*</sup>
</td>
<td>= <i>a</i><sup>*</sup>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">01</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">01</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">01</sub></span></span>
</td>
<td>= <i>a</i><sup>*</sup><i>b</i>
</td>
<td>(<i>b</i> | ε)<sup>*</sup>
</td>
<td>(<i>b</i> | ε)
</td>
<td>| <i>a</i><sup>*</sup> <i>b</i>
</td>
<td>= <i>a</i><sup>*</sup> <i>b</i><sup>*</sup> <i>b</i>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">02</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">01</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">12</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">02</sub></span></span>
</td>
<td>= <i>a</i><sup>*</sup><i>b</i>
</td>
<td>(<i>b</i> | ε)<sup>*</sup>
</td>
<td><i>a</i>
</td>
<td>| ∅
</td>
<td>= <i>a</i><sup>*</sup> <i>b</i><sup>*</sup> <i>ba</i>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">10</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">10</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">10</sub></span></span>
</td>
<td>= (<i>b</i> | ε)
</td>
<td>(<i>b</i> | ε)<sup>*</sup>
</td>
<td>∅
</td>
<td>| ∅
</td>
<td>= ∅
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>
</td>
<td>= (<i>b</i> | ε)
</td>
<td>(<i>b</i> | ε)<sup>*</sup>
</td>
<td>(<i>b</i> | ε)
</td>
<td>| <i>b</i> | ε
</td>
<td>= <i>b</i><sup>*</sup>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">12</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">12</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">12</sub></span></span>
</td>
<td>= (<i>b</i> | ε)
</td>
<td>(<i>b</i> | ε)<sup>*</sup>
</td>
<td><i>a</i>
</td>
<td>| <i>a</i>
</td>
<td>= <i>b</i><sup>*</sup> <i>a</i>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">20</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">21</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">10</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">20</sub></span></span>
</td>
<td>= (<i>a</i> | <i>b</i>)
</td>
<td>(<i>b</i> | ε)<sup>*</sup>
</td>
<td>∅
</td>
<td>| ∅
</td>
<td>= ∅
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">21</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">21</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">21</sub></span></span>
</td>
<td>= (<i>a</i> | <i>b</i>)
</td>
<td>(<i>b</i> | ε)<sup>*</sup>
</td>
<td>(<i>b</i> | ε)
</td>
<td>| <i>a</i> | <i>b</i>
</td>
<td>= (<i>a</i> | <i>b</i>) <i>b</i><sup>*</sup>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">21</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">12</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">0</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>
</td>
<td>= (<i>a</i> | <i>b</i>)
</td>
<td>(<i>b</i> | ε)<sup>*</sup>
</td>
<td><i>a</i>
</td>
<td>| ε
</td>
<td>= (<i>a</i> | <i>b</i>) <i>b</i><sup>*</sup> <i>a</i> | ε
</td></tr></tbody></table></dd></dl>
<dl><dt>Step 2</dt></dl>
<dl><dd><table>
<tbody><tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">2</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">02</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">20</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">00</sub></span></span>
</td>
<td>= <i>a</i><sup>*</sup><i>b</i><sup>*</sup><i>ba</i>
</td>
<td>((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)<sup>*</sup>
</td>
<td>∅
</td>
<td>| <i>a</i><sup>*</sup>
</td>
<td>= <i>a</i><sup>*</sup>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">2</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">01</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">02</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">21</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">01</sub></span></span>
</td>
<td>= <i>a</i><sup>*</sup><i>b</i><sup>*</sup><i>ba</i>
</td>
<td>((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)<sup>*</sup>
</td>
<td>(<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup>
</td>
<td>| <i>a</i><sup>*</sup> <i>b</i><sup>*</sup> <i>b</i>
</td>
<td>= <i>a</i><sup>*</sup> <i>b</i> (<i>a</i> (<i>a</i> | <i>b</i>) | <i>b</i>)<sup>*</sup>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">2</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">02</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">02</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">02</sub></span></span>
</td>
<td>= <i>a</i><sup>*</sup><i>b</i><sup>*</sup><i>ba</i>
</td>
<td>((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)<sup>*</sup>
</td>
<td>((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)
</td>
<td>| <i>a</i><sup>*</sup> <i>b</i><sup>*</sup> <i>ba</i>
</td>
<td>= <i>a</i><sup>*</sup> <i>b</i><sup>*</sup> <i>b</i> (<i>a</i> (<i>a</i> | <i>b</i>) <i>b</i><sup>*</sup>)<sup>*</sup> <i>a</i>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">2</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">10</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">12</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">20</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">10</sub></span></span>
</td>
<td>= <i>b</i><sup>*</sup> <i>a</i>
</td>
<td>((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)<sup>*</sup>
</td>
<td>∅
</td>
<td>| ∅
</td>
<td>= ∅
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">2</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">12</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">21</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">11</sub></span></span>
</td>
<td>= <i>b</i><sup>*</sup> <i>a</i>
</td>
<td>((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)<sup>*</sup>
</td>
<td>(<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup>
</td>
<td>| <i>b</i><sup>*</sup>
</td>
<td>= (<i>a</i> (<i>a</i> | <i>b</i>) | <i>b</i>)<sup>*</sup>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">2</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">12</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">12</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">12</sub></span></span>
</td>
<td>= <i>b</i><sup>*</sup> <i>a</i>
</td>
<td>((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)<sup>*</sup>
</td>
<td>((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)
</td>
<td>| <i>b</i><sup>*</sup> <i>a</i>
</td>
<td>= (<i>a</i> (<i>a</i> | <i>b</i>) | <i>b</i>)<sup>*</sup> <i>a</i>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">2</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">20</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">20</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">20</sub></span></span>
</td>
<td>= ((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)
</td>
<td>((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)<sup>*</sup>
</td>
<td>∅
</td>
<td>| ∅
</td>
<td>= ∅
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">2</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">21</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">21</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">21</sub></span></span>
</td>
<td>= ((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)
</td>
<td>((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)<sup>*</sup>
</td>
<td>(<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup>
</td>
<td>| (<i>a</i> | <i>b</i>) <i>b</i><sup>*</sup>
</td>
<td>= (<i>a</i> | <i>b</i>) (<i>a</i> (<i>a</i> | <i>b</i>) | <i>b</i>)<sup>*</sup>
</td></tr>
<tr>
<td><i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">2</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>
</td>
<td>= <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span> (<i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>)<sup>*</sup> <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span> | <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">1</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">22</sub></span></span>
</td>
<td>= ((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)
</td>
<td>((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)<sup>*</sup>
</td>
<td>((<i>a</i>|<i>b</i>)<i>b</i><sup>*</sup><i>a</i> | ε)
</td>
<td>| (<i>a</i> | <i>b</i>) <i>b</i><sup>*</sup> <i>a</i> | ε
</td>
<td>= ((<i>a</i> | <i>b</i>) <i>b</i><sup>*</sup> <i>a</i>)<sup>*</sup>
</td></tr></tbody></table></dd></dl>
<p>Since <i>q</i><sub>0</sub> is the start state and <i>q</i><sub>1</sub> is the only accept state, the regular expression <i>R</i><span class="nowrap"><span style="display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:80%;text-align:left"><sup style="font-size:inherit;line-height:inherit;vertical-align:baseline">2</sup><br><sub style="font-size:inherit;line-height:inherit;vertical-align:baseline">01</sub></span></span> denotes the set of all strings accepted by the automaton.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Floyd%E2%80%93Warshall_algorithm#Applications_and_generalizations" title="Floyd–Warshall algorithm">Floyd–Warshall algorithm</a> — an algorithm on weighted graphs that can be implemented by Kleene's algorithm using a particular <a href="Kleene_algebra#Examples" title="Kleene algebra">Kleene algebra</a></li>
<li><a href="Star_height_problem" title="Star height problem">Star height problem</a> — what is the minimum stars' nesting depth of all regular expressions corresponding to a given DFA?</li>
<li><a href="Generalized_star_height_problem" class="mw-redirect" title="Generalized star height problem">Generalized star height problem</a> — if a complement operator is allowed additionally in regular expressions, can the <a href="Star_height#Generalized_star_height" title="Star height">stars' nesting depth</a> of Kleene's algorithm's output be limited to a fixed bound?</li>
<li><a href="Thompson's_construction_algorithm" class="mw-redirect" title="Thompson's construction algorithm">Thompson's construction algorithm</a> — transforms a regular expression to a finite automaton</li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFMcNaughtonYamada1960" class="citation journal cs1">McNaughton, R.; Yamada, H. (March 1960). "Regular Expressions and State Graphs for Automata". <i>IRE Transactions on Electronic Computers</i>. <b>EC-9</b> (1): <span class="nowrap">39–</span>47. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FTEC.1960.5221603">10.1109/TEC.1960.5221603</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0367-9950">0367-9950</a>.</cite></span>
</li>
<li id="cite_note-gross2004handbook-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-gross2004handbook_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-gross2004handbook_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFJonathan_L._Gross_and_Jay_Yellen2004" class="citation book cs1">Jonathan L. Gross and Jay Yellen, ed. (2004). <i>Handbook of Graph Theory</i>. Discrete Mathematics and it Applications. CRC Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>1-58488-090-2</bdi>.</cite> Here: sect.2.1, remark R13 on p.65</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFKleene,_Stephen_C.1956" class="citation journal cs1">Kleene, Stephen C. (1956). <a rel="nofollow" class="external text" href="http://www.dlsi.ua.es/~mlf/nnafmc/papers/kleene56representation.pdf">"Representation of Events in Nerve Nets and Finite Automata"</a> <span class="cs1-format">(PDF)</span>. <i>Automata Studies, Annals of Math. Studies</i>. <b>34</b>. Princeton Univ. Press.</cite> Here: sect.9, p.37-40</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFJohn_E._Hopcroft,_Jeffrey_D._Ullman1979" class="citation book cs1">John E. Hopcroft, Jeffrey D. Ullman (1979). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/introductiontoau00hopc"><i>Introduction to Automata Theory, Languages, and Computation</i></a></span>. Addison-Wesley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-201-02988-X</bdi>.</cite> Here: Section 3.2.1 pages 91-96</span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text">More precisely, the number of regular-expression symbols, "<i>a</i><sub><i>i</i></sub>", "ε", "|", "<sup>*</sup>", "·"; not counting parentheses.</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFGruberHolzer2008" class="citation book cs1">Gruber, Hermann; Holzer, Markus (2008). "Finite Automata, Digraph Connectivity, and Regular Expression Size". In Aceto, Luca; Damgård, Ivan; Goldberg, Leslie Ann; Halldórsson, Magnús M.; Ingólfsdóttir, Anna; Walukiewicz, Igor (eds.). <i>Automata, Languages and Programming</i>. Lecture Notes in Computer Science. Vol. 5126. Springer Berlin Heidelberg. pp. <span class="nowrap">39–</span>50. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-70583-3_4">10.1007/978-3-540-70583-3_4</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9783540705833</bdi>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:10975422">10975422</a>.</cite>. Theorem 16.</span>
</li>
</ol></div></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-04-14" href="https://en.wikipedia.org/wiki/?title=Kleene's_algorithm&oldid=1285525439">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>